home *** CD-ROM | disk | FTP | other *** search
Text File | 1994-07-18 | 718 b | 36 lines | [TEXT/MPS ] |
- #define OVERFLOW(x) \
- (0 != (0x80000000 & (x)))
-
- #define DOCARRY(x) { \
- x ## high++; \
- x ## low &= 0x7FFFFFFF;}
-
- #define DOBORROW(x) { \
- x ## high--; \
- x ## low &= 0x7FFFFFFF;}
-
- #define GT_ZERO(x) \
- ((x ## high >= 0) && (x ## low != 0))
- #define EQ_ZERO(x) \
- ((x ## high == 0) && (x ## low == 0))
- #define LT_ZERO(x) \
- ((x ## high < 0))
-
- #define INCR(x,a) { \
- if (OVERFLOW(x ## low += a)) \
- DOCARRY(x);}
-
- #define DECR(x,a) { \
- if (OVERFLOW(x ## low -= a)) \
- DOBORROW(x);}
-
- #define PLUS_EQUALS(x, y) { \
- x ## high += y ## high; \
- if (OVERFLOW(x ## low += y ## low))\
- DOCARRY(x);}
-
- #define MINUS_EQUALS(x, y) { \
- x ## high -= y ## high; \
- if (OVERFLOW(x ## low -= y ## low))\
- DOBORROW(x);}
-